#include <vector>
#include <string>
#include <boost/graph/adjacency_list.hpp>
#include <cstdio>
using namespace boost;

struct City
{
  std::string name;
  int population;
  std::vector<int> zipcodes;
};

struct Highway
{
  std::string name;
  double miles;
  int speed_limit;
  int lanes;
  bool divided;
};

typedef boost::adjacency_list<
    boost::listS, boost::vecS, boost::bidirectionalS,
    City, Highway> Map;

int main()
{
Map map; // load the map
Map::vertex_descriptor n = add_vertex(map);
map[n].name = "Troy";
map[n].population = 49170;
map[n].zipcodes.push_back(12180);

Map::vertex_descriptor v = *vertices(map).first;
printf("%s %d %d\n", map[v].name.c_str(), map[v].population, map[v].zipcodes[0]);
return 0;
}